作為當代最重要的文字檔案交換格式之一,JSON 檔案的處理自然也是很 Qt 核心的一環。
今天就來介紹該怎麼操作 JSON 檔案。
要在 Qt 中使用 JSON 功能,你首先需要引入相關的模組。打開你的 .pro 檔案並加入:
QT += core
確保你已經包含了核心模組。接著,在你的程式碼中引入下列標頭檔:
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
我們先從讀取 JSON 檔案開始:
QFile loadFile("path/to/your/file.json");
if (!loadFile.open(QIODevice::ReadOnly)) {
qWarning("Failed to open load file.");
return;
}
QByteArray jsonData = loadFile.readAll();
loadFile.close();
QJsonDocument jsonDoc(QJsonDocument::fromJson(jsonData));
QJsonObject jsonObj = jsonDoc.object();
上述程式碼首先嘗試打開一個 JSON 檔案,讀取其內容,然後將其解析為 QJsonObject。
一旦你修改了 JSON 物件,你可能希望將其寫回檔案:
QFile saveFile("path/to/your/file.json");
if (!saveFile.open(QIODevice::WriteOnly)) {
qWarning("Failed to open save file.");
return;
}
QJsonDocument saveDoc(jsonObj);
saveFile.write(saveDoc.toJson());
saveFile.close();
在 Qt 中,QJsonObject 和 QJsonArray 提供了許多方便的方法來讀取和修改 JSON 內容。
舉例來說,從 JSON 物件中取得值:
QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();
新增或修改值:
jsonObj["name"] = "新的名稱";
jsonObj["age"] = 30;
操作陣列
QJsonArray jsonArray = jsonObj["hobbies"].toArray();
for (int i = 0; i < jsonArray.size(); i++) {
QString hobby = jsonArray[i].toString();
qDebug() << hobby;
}
到此,我們已經介紹了 Qt 中基本的 JSON 操作。可以便利地讀取、修改和保存 JSON 資料。